package com.cipe.cmrs.model;

import java.util.List;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 * <p>
 * Pojo mapping TABLE dbo.Country
 * </p>
 * 
 * <p>
 * Generated at Sat Dec 03 14:39:41 PKT 2011	
 * </p>
 * 
 * @author Incepio
 * 
 */
@Entity
@Table(name = "Country")
@SuppressWarnings("serial")
public class Country extends BaseAuditEntity {

	@Transient
	private List<Payee>				bankPayees					= null;
	/**
	 * List of Paymentwireinfo
	 */
/*	@OneToMany(mappedBy = "bankCountry")
	private List<Paymentwireinfo>	bankPaymentwireinfos		= null;
	@OneToMany(mappedBy = "beneficiaryCountry")
	private List<Payee>				beneficiaryPayees			= null;*/
	/**
	* List of Paymentwireinfo
	*/
/*	@OneToMany(mappedBy = "beneficiaryCountry")
	private List<Paymentwireinfo>	beneficiaryPaymentwireinfos	= null;*/
	/**
	* List of Cipeproject
	*/
	@OneToMany(mappedBy = "country")
	private List<Cipeproject>		cipeprojects				= null;
	/**
	 * Attribute displayName.
	 */
	@Basic
	@Column(name = "countryname", length = 100)
	private String					displayName;
	/**
	 * List of Donoraward
	 */
	@Transient
	private List<Donoraward>		donorawards					= null;
	/**
	 * List of Partner
	 */
	@OneToMany(mappedBy = "country")
	private List<Partner>			partners					= null;
	@Transient
	private List<Payee>				payees						= null;
	/**
	* List of Paymentrequest
	*/
	@OneToMany(mappedBy = "country")
	private List<Paymentrequest>	paymentrequests				= null;
	/**
	 * Attribute region
	 */
    @ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "regionid")
	private Region					region;
	@OneToMany(mappedBy = "country")
	private List<State>				states						= null;

	@OneToOne(fetch = FetchType.LAZY)
	@JoinColumn(name="[programofficer]")
	private User programOfficer;
	
    @OneToOne(fetch = FetchType.LAZY)
	@JoinColumn(name="programassistant")
	private User programAssistant;
	
	/**
	 * @return the bankPayees
	 */
	public List<Payee> getBankPayees() {
		return bankPayees;
	}

	/**
	 * @return the bankPaymentwireinfos
	 *//*
	public List<Paymentwireinfo> getBankPaymentwireinfos() {
		return bankPaymentwireinfos;
	}

	*//**
	 * @return the beneficiaryPayees
	 *//*
	public List<Payee> getBeneficiaryPayees() {
		return beneficiaryPayees;
	}

	*//**
	 * @return the beneficiaryPaymentwireinfos
	 *//*
	public List<Paymentwireinfo> getBeneficiaryPaymentwireinfos() {
		return beneficiaryPaymentwireinfos;
	}*/

	/**
	 * @return the cipeprojects
	 */
	public List<Cipeproject> getCipeprojects() {
		return cipeprojects;
	}

	/**
	 * @return the displayName
	 */
	public String getDisplayName() {
		return displayName;
	}

	/**
	 * @return the donorawards
	 */
	public List<Donoraward> getDonorawards() {
		return donorawards;
	}

	/**
	 * Get the list of Partner
	 */
	public List<Partner> getPartners() {
		return this.partners;
	}

	/**
	 * @return the payees
	 */
	public List<Payee> getPayees() {
		return payees;
	}

	/**
	 * @return the paymentrequests
	 */
	public List<Paymentrequest> getPaymentrequests() {
		return paymentrequests;
	}

	/**
	 * @return the region
	 */
	public Region getRegion() {
		return region;
	}

	/**
	 * @return the states
	 */
	public List<State> getStates() {
		return states;
	}

	/**
	 * @param bankPayees the bankPayees to set
	 */
	public void setBankPayees(List<Payee> bankPayees) {
		this.bankPayees = bankPayees;
	}

	/**
	 * @param bankPaymentwireinfos the bankPaymentwireinfos to set
	 */
/*	public void setBankPaymentwireinfos(List<Paymentwireinfo> bankPaymentwireinfos) {
		this.bankPaymentwireinfos = bankPaymentwireinfos;
	}

	*//**
	 * @param beneficiaryPayees the beneficiaryPayees to set
	 *//*
	public void setBeneficiaryPayees(List<Payee> beneficiaryPayees) {
		this.beneficiaryPayees = beneficiaryPayees;
	}

	*//**
	 * @param beneficiaryPaymentwireinfos the beneficiaryPaymentwireinfos to set
	 *//*
	public void setBeneficiaryPaymentwireinfos(List<Paymentwireinfo> beneficiaryPaymentwireinfos) {
		this.beneficiaryPaymentwireinfos = beneficiaryPaymentwireinfos;
	}*/

	/**
	 * @param cipeprojects the cipeprojects to set
	 */
	public void setCipeprojects(List<Cipeproject> cipeprojects) {
		this.cipeprojects = cipeprojects;
	}

	/**
	 * @param displayName the displayName to set
	 */
	public void setDisplayName(String displayName) {
		this.displayName = displayName;
	}

	/**
	 * @param donorawards the donorawards to set
	 */
	public void setDonorawards(List<Donoraward> donorawards) {
		this.donorawards = donorawards;
	}

	/**
	 * Set the list of Partner
	 */
	public void setPartners(List<Partner> partners) {
		this.partners = partners;
	}

	/**
	 * @param payees
	 *            the payees to set
	 */
	public void setPayees(List<Payee> payees) {
		this.payees = payees;
	}

	/**
	 * @param paymentrequests the paymentrequests to set
	 */
	public void setPaymentrequests(List<Paymentrequest> paymentrequests) {
		this.paymentrequests = paymentrequests;
	}

	/**
	 * @param region the region to set
	 */
	public void setRegion(Region region) {
		this.region = region;
	}

	/**
	 * @param states the states to set
	 */
	public void setStates(List<State> states) {
		this.states = states;
	}

	/**
	 * @return the programOfficer
	 */
	public User getProgramOfficer() {
		return programOfficer;
	}

	/**
	 * @param programOfficer the programOfficer to set
	 */
	public void setProgramOfficer(User programOfficer) {
		this.programOfficer = programOfficer;
	}

	/**
	 * @return the programAssistant
	 */
	public User getProgramAssistant() {
		return programAssistant;
	}

	/**
	 * @param programAssistant the programAssistant to set
	 */
	public void setProgramAssistant(User programAssistant) {
		this.programAssistant = programAssistant;
	}
	
	
}